ATOM Documentation

← Back to App

Private Desktop App Fork Guide

Overview

Create a private fork of the Atom Tauri desktop app with custom branding that connects to your atom-saas backend.

Steps

1. Fork the Repository

# Clone the public repo
git clone https://github.com/rush86999/atom.git atom-desktop-private
cd atom-desktop-private

# Remove origin and add your private repo
git remote remove origin
git remote add origin git@github.com:YOUR_ORG/atom-desktop-private.git
git push -u origin main

2. Update Branding

tauri.conf.json

{
  "productName": "YourAppName",
  "identifier": "com.yourcompany.yourapp",
  "app": {
    "windows": [
      {
        "title": "YourAppName"
      }
    ]
  }
}

Icons

Replace icons in src-tauri/icons/:

  • icon.icns (macOS)
  • icon.ico (Windows)
  • icon.png (Linux)

Use tauri-icon to generate all sizes:

npx tauri icon /path/to/your-logo.png

3. Configure Backend URL

In frontend-nextjs/.env.production:

NEXT_PUBLIC_API_URL=https://your-saas-domain.com

Or configure in src-tauri/tauri.conf.json:

{
  "build": {
    "beforeBuildCommand": "NEXT_PUBLIC_API_URL=https://your-saas-domain.com npm run build"
  }
}
63: 
64: ### 3.1. Desktop Bridge & Satellite (Local Node)

The desktop app includes a built-in "Satellite" bridge that allows the SaaS platform to control local tools (Terminal, Browser) securely.

**Features:**
- **Terminal Access**: Remote shell execution (default: enabled).
- **Browser Control**: Playwright-based local browser automation (default: enabled).
- **Granular Permissions**: Users can toggle these features individually in the UI.

**Dependencies:**
The app automatically manages a Python venv in `~/.atom/venv` for the satellite script.

### 3.2. Docker Requirements (Local Only)
The Desktop App supports executing containerized skills locally. However, it **does not bundle a Docker runtime**.

- **Requirement**: Docker Desktop (or Docker Engine) must be installed and running on the user's machine.
- **Behavior**: If Docker is not running, containerized skills will fail to execute. The app does not attempt to install Docker automatically.
- **Guidance**: Ensure your onboarding documentation instructs users to install Docker if they plan to use containerized agent skills.

### 3.3. Tauri Shell Configuration (Sidecar)
65: 
66: To enable the "Sidecar" automation (Python/Node scripts running locally), you must install the shell plugin in your desktop fork:
67: 
68: ```bash
69: # In your desktop fork directory
70: npm install @tauri-apps/plugin-shell
71: ```
72: 
73: And register it in `src-tauri/src/lib.rs` (Tauri v2):
74: ```rust
75: pub fn run() {
76:     tauri::Builder::default()
77:         .plugin(tauri_plugin_shell::init()) // Add this line
78:         .run(tauri::generate_context!())
79:         .expect("error while running tauri application");
80: }
81: ```
82: 
83: ### 4. Build Installers

Install dependencies

cd atom-desktop-private

npm install

Build for current platform

npm run tauri build

Output locations:

macOS: src-tauri/target/release/bundle/dmg/

Windows: src-tauri/target/release/bundle/msi/

Linux: src-tauri/target/release/bundle/appimage/


### 5. Cross-Platform Builds (CI/CD)

Add to `.github/workflows/build-desktop.yml`:

name: Build Desktop App

on:

push:

tags:

  • 'v*'

jobs:

build:

strategy:

matrix:

os: [macos-latest, windows-latest, ubuntu-latest]

runs-on: ${{ matrix.os }}

steps:

  • uses: actions/checkout@v4
  • uses: actions/setup-node@v4
  • name: Install Rust
  • name: Install dependencies
  • name: Build Tauri
  • name: Upload artifacts

### 6. Code Signing (Production)

#### macOS
1. Get Apple Developer certificate
2. Set `APPLE_CERTIFICATE` and `APPLE_CERTIFICATE_PASSWORD` in CI secrets
3. Configure notarization in `tauri.conf.json`

#### Windows
1. Get code signing certificate (DigiCert, Sectigo, etc.)
2. Set `TAURI_PRIVATE_KEY` and `TAURI_KEY_PASSWORD` in CI secrets

### 7. Auto-Update (Optional)

Configure in `tauri.conf.json`:

{

"plugins": {

"updater": {

"endpoints": [

"https://your-saas-domain.com/api/desktop/updates"

],

"pubkey": "YOUR_PUBLIC_KEY"

}

}

}


Create update endpoint in atom-saas to serve latest versions.

---

## Quick Start Commands

Development

npm run tauri dev

Build (debug)

npm run tauri build --debug

Build (release)

npm run tauri build